package ec.edu.ucacue.siop.proceso.calculoBorrar;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import jxl.Sheet;
import jxl.write.*;
import jxl.Workbook;
import jxl.read.biff.*;
import jxl.read.biff.BiffException;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

import java.lang.Object;
import java.lang.Throwable;   
import java.lang.Exception;
import jxl.JXLException;
import jxl.read.biff.PasswordException;
import jxl.WorkbookSettings;
import jxl.SheetSettings;


public class FormarHojaNuevaProceso {
	private String error= "";
	private String[][][] variables = new String[60][31][24];
	private String[] listaVar = new String[60]; 
	
	public String getError() {
		return error;
	}


	public void setError(String error) {
		this.error = error;
	}


	public String[][][] getVariables() {
		return variables;
	}


	public void setVariables(String[][][] variables) {
		this.variables = variables;
	}
	public boolean crear(String directorio, String prefijoSalida, String nroHoja, int filaInicio, int filaFin, int colInicio) {
            Workbook libroExcel;
            Workbook listado;
            System.out.println(directorio);
            File entrada = new File(directorio);    
            String[] listadoDirectorios = entrada.list();	
            System.out.println("tamano " + listadoDirectorios.length);	
            for(int iDirec=0; iDirec<listadoDirectorios.length; iDirec++) {
                File archivoDirectorio = new File(directorio+"/"+listadoDirectorios[iDirec]);
                System.out.println("leyendo el directorio " + iDirec);
                
                String[] listadoArchivos = archivoDirectorio.list();        
                System.out.println("listadoArchivos " + listadoArchivos);	
                
                for(int i =0; i<listadoArchivos.length; i++) {
                    File archivo = new File(directorio+"/"+listadoDirectorios[iDirec]+"/"+listadoArchivos[i]);
                     
                    //File archivo = new File(directorio+"/"+listadoDirectorios[iDirec]);
                    String dirDirectorio=directorio+listadoDirectorios[iDirec];
                    
                    System.out.println("leyendo el archivo " + archivo);
                    try {
                        //Worksheet_settings.setPassword("mvh123");
                        //libroExcel = Workbook.getWorkbook(new File(dirDirectorio));
                        libroExcel = Workbook.getWorkbook(archivo);
                        Sheet hoja = libroExcel.getSheet(nroHoja);
                        
                        for(int j=filaInicio; j<filaFin; j++) {
                            if(iDirec==0){
                                listaVar[j-filaInicio] = hoja.getCell(2, j).getContents();
                            }
                            for(int k=colInicio; k<colInicio+24;k++) {
                                String contenido = hoja.getCell(k, j).getContents();
                                 if(contenido.length() >0) {
                                    variables[j-filaInicio][i][k-colInicio] = contenido;                                    
                                }
                            }
                        }
                    } 
                    //catch (BiffException e) {
                        // TODO Bloque catch generado automáticamente
                        //System.out.println(e.getMessage());
                        //e.printStackTrace();
                    //} 
                    catch (IOException e) {
                        // TODO Bloque catch generado automáticamente
                        System.out.println(e.getMessage());
                        e.printStackTrace();
                    } 
                    catch (Exception ex){
                        System.out.println(ex.getMessage());
                    }
                }
                String mes = Integer.toString(iDirec+1);
                if(mes.length()==1) mes ="0"+mes;
                for(int i=0; i<filaFin-filaInicio; i++) {
                    String indice = Integer.toString(i+1);
                    if (indice.length() == 1) indice="0"+indice;
                    FileWriter salida;
                    try {
                        salida = new FileWriter("C:\\ucem\\datos\\RESULTADOS\\"+prefijoSalida+"_"+mes+"_"+indice+".csv");
                        PrintWriter pw = new PrintWriter(salida);
                        for(int j=0;j<24;j++) {
                            String cadenaSalida = "";
                            for(int k=0;k<listadoArchivos.length;k++) {
                                if(variables[i][k][j] != null) {
                                    cadenaSalida +=  variables[i][k][j];
                                }
                                else{
                                	cadenaSalida +="-";
                                }
                                cadenaSalida +=";";
                            }
                            pw.println(cadenaSalida);
                        }
                        salida.close();		
                    } 
                    catch (IOException e) {
                        // TODO Bloque catch generado automáticamente
                        e.printStackTrace();
                    }
                }
            }
            return true;	
	}
}
